package ip.dto;

import java.io.Serializable;
import java.sql.Time;
import java.util.Collection;

/***********************************************************************
 * Module:  Movie.java
 * Author:  mojsilo
 * Purpose: Defines the Class Movie
 ***********************************************************************/

public class MovieDTO implements Serializable
{
	private static final long serialVersionUID = -4848951072870095460L;
	private long movieId;
	private java.lang.String originalTitle;
	private java.lang.String translatedTitle;
	private java.lang.String director;
	private java.lang.String producer;
	private int year;
	private java.lang.String description;
	private Time length;
	private int quantity;
	private float price;

	private Collection orderItemsWithThisMovie;
	private Collection movieSubtitles;
	private CountryDTO country;
	private LanguageDTO language;
	private CategoryDTO category;

	/**
	 * @return the description
	 */
	public java.lang.String getDescription() {
		return description;
	}
	/**
	 * @param description the description to set
	 */
	public void setDescription(java.lang.String description) {
		this.description = description;
	}
	/**
	 * @return the director
	 */
	public java.lang.String getDirector() {
		return director;
	}
	/**
	 * @param director the director to set
	 */
	public void setDirector(java.lang.String director) {
		this.director = director;
	}

	/**
	 * @return the length
	 */
	public Time getLength() {
		return length;
	}
	/**
	 * @param length the length to set
	 */
	public void setLength(Time length) {
		this.length = length;
	}
	/**
	 * @return the movieId
	 */
	public long getMovieId() {
		return movieId;
	}
	/**
	 * @param movieId the movieId to set
	 */
	public void setMovieId(long movieId) {
		this.movieId = movieId;
	}
	/**
	 * @return the movieSubtitles
	 */
	public Collection getMovieSubtitles() {
		return movieSubtitles;
	}
	/**
	 * @param movieSubtitles the movieSubtitles to set
	 */
	public void setMovieSubtitles(Collection movieSubtitles) {
		this.movieSubtitles = movieSubtitles;
	}
	/**
	 * @return the orderItemsWithThisMovie
	 */
	public Collection getOrderItemsWithThisMovie() {
		return orderItemsWithThisMovie;
	}
	/**
	 * @param orderItemsWithThisMovie the orderItemsWithThisMovie to set
	 */
	public void setOrderItemsWithThisMovie(Collection orderItemsWithThisMovie) {
		this.orderItemsWithThisMovie = orderItemsWithThisMovie;
	}
	/**
	 * @return the originalTitle
	 */
	public java.lang.String getOriginalTitle() {
		return originalTitle;
	}
	/**
	 * @param originalTitle the originalTitle to set
	 */
	public void setOriginalTitle(java.lang.String originalTitle) {
		this.originalTitle = originalTitle;
	}
	/**
	 * @return the price
	 */
	public float getPrice() {
		return price;
	}
	/**
	 * @param price the price to set
	 */
	public void setPrice(float price) {
		this.price = price;
	}
	/**
	 * @return the producer
	 */
	public java.lang.String getProducer() {
		return producer;
	}
	/**
	 * @param producer the producer to set
	 */
	public void setProducer(java.lang.String producer) {
		this.producer = producer;
	}
	/**
	 * @return the quantity
	 */
	public int getQuantity() {
		return quantity;
	}
	/**
	 * @param quantity the quantity to set
	 */
	public void setQuantity(int quantity) {
		this.quantity = quantity;
	}
	/**
	 * @return the translatedTitle
	 */
	public java.lang.String getTranslatedTitle() {
		return translatedTitle;
	}
	/**
	 * @param translatedTitle the translatedTitle to set
	 */
	public void setTranslatedTitle(java.lang.String translatedTitle) {
		this.translatedTitle = translatedTitle;
	}
	/**
	 * @return the year
	 */
	public int getYear() {
		return year;
	}
	/**
	 * @param year the year to set
	 */
	public void setYear(int year) {
		this.year = year;
	}	
	
	/**
	 * @return the category
	 */
	public CategoryDTO getCategory() {
		return category;
	}
	/**
	 * @param category the category to set
	 */
	public void setCategory(CategoryDTO category) {
		this.category = category;
	}
	/**
	 * @return the country
	 */
	public CountryDTO getCountry() {
		return country;
	}
	/**
	 * @param country the country to set
	 */
	public void setCountry(CountryDTO country) {
		this.country = country;
	}
	/**
	 * @param language the language to set
	 */
	public void setLanguage(LanguageDTO language) {
		this.language = language;
	}
	
	/**
	 * @return the language
	 */	
	public LanguageDTO getLanguage() {
		return language;
	}
	/**
	 * Constructs a <code>String</code> with all attributes
	 * in name = value format.
	 *
	 * @return a <code>String</code> representation 
	 * of this object.
	 */
	public String toString()
	{
		final String TAB = "    ";

		String retValue = "";

		retValue = "Movie ( "
			+ super.toString() + TAB
			+ "movieId = " + this.movieId + TAB
			+ "originalTitle = " + this.originalTitle + TAB
			+ "translatedTitle = " + this.translatedTitle + TAB
			+ "director = " + this.director + TAB
			+ "producer = " + this.producer + TAB
			+ "year = " + this.year + TAB
			+ "description = " + this.description + TAB
			+ "length = " + this.length + TAB
			+ "quantity = " + this.quantity + TAB
			+ "price = " + this.price + TAB
			+ "orderItemsWithThisMovie = " + this.orderItemsWithThisMovie + TAB
			+ "movieSubtitles = " + this.movieSubtitles + TAB
			+ "country = " + this.country + TAB
			+ "language = " + this.language + TAB
			+ "category = " + this.category + TAB
			+ " )";

		return retValue;
	}

}